home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / includes / ciknowledgebase.h < prev    next >
C/C++ Source or Header  |  1996-11-18  |  2KB  |  75 lines

  1. /***[f*****************************************************************
  2.  *    CIkb.h    -- Knowledge base Interface. 
  3.  *
  4.  *    Copyright 1996 (c) Adobe Systems, Inc. All Rights Reserved
  5.  *
  6.  *    Public version
  7.  *    
  8.  * $Revision:   1.1  $
  9.  *
  10.  *
  11.  ***f]*****************************************************************/
  12. #ifndef __CIKB
  13. #define __CIKB
  14. #include "pmtypes.h"
  15.  
  16. // conventions for using following templatedatarec structure:
  17. //
  18. // To be used in an array, where each entry is as follows:
  19. //         First entry:      template name, # of field slots that follow
  20. //        Second entry:    id field name, id field value 
  21. //                        If id field name == NULL, use next fact of template
  22. //                        This ID only for getting.... for setting, just a normal field
  23. //        Third, etc.:    field name, field value
  24. // 
  25.  
  26. typedef struct _templatedatarec {
  27.     char aname[32];
  28.     int     avalue;
  29. } templatedatarec, FAR *lptemplatedatarec;
  30.  
  31.  
  32.  
  33. class CIkb;    // forward declaration
  34.  
  35. //    THE "RULEABLE" CLASS
  36. //
  37. //    This class describes a protocol for an object to
  38. //    link itself to a rulebase, by providing a method
  39. //    that encapsulates the knowledge of the specific
  40. //    fact-name in the rulebase that corresponds to each
  41. //    member data having a fact.  Using multiple inheritance,
  42. //    the page, column, and textblock objects inherit from
  43. //    this 'ruleable' since they have facts to relate to.
  44. //
  45. class ruleable : public CIInterface {
  46.  
  47.     public:
  48.         virtual int getfacts(const CIkb& theKB) = 0;
  49.         virtual int setfacts(const CIkb& theKB) = 0;
  50.     private:
  51.  
  52. };
  53. /////////////////////////////////////////////////////////////////
  54. //        END OF RULEABLE CLASS
  55. /////////////////////////////////////////////////////////////////
  56.  
  57. class CIkb : public CIInterface  {
  58.     public:
  59.         // General running of the rulebase
  60.         virtual int clear() = 0;
  61.            virtual PMXErr solve(ruleable *object, char *filename) = 0;
  62.  
  63.         // Fact management methods
  64.         virtual int getIntFact(char *fname, int *val) const = 0;
  65.         virtual int setIntFact(char *fname, int val) const = 0;
  66.         virtual int setTemplateFact(lptemplatedatarec lpTDR) const = 0;
  67.         virtual int getTemplateFact(lptemplatedatarec lpTDR) const = 0;
  68.  
  69.     private:
  70. };
  71.  
  72.  
  73.  
  74. #endif    // __CIKB
  75.